package com.ctshk.rpc.tour.dto.schedule;

import com.ctshk.rpc.tour.req.*;
import com.ctshk.rpc.tour.req.schedule.TripScheduleDefaultCostReq;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;

/**
 * @author pf
 */
@Data
@ApiModel(value = "SeriesTripScheduleDTO对象", description = "团期-详情详细")
public class SeriesTripScheduleDTO implements Serializable {


    @ApiModelProperty(value = "团期id")
    private Long id;

    @ApiModelProperty(value = "团期时间")
    private LocalDate departureDate;

    @ApiModelProperty(value = "回程日期")
    private LocalDate backDate;

    @ApiModelProperty(value = "团号")
    private String tripNumber;

    @ApiModelProperty(value = "团期状态")
    private Integer scheduleStatus;

    @ApiModelProperty(value = "出境类型")
    private Integer departType;

    @ApiModelProperty(value = "成本分摊默认类型（1：默认 2：自定义）")
    private Integer costSharingType;
    
    @ApiModelProperty("余位")
    private Integer reserveSeatNum;

    @ApiModelProperty(value = "团期资料")
    private SeriesTripScheduleDataDTO seriesTripScheduleDataDTO;

    @ApiModelProperty(value = "团队资料")
    private SeriesTripScheduleTeamRuleDTO seriesTripScheduleTeamRuleDTO;

    @ApiModelProperty(value = "默认团队成本分摊")
    private TripScheduleDefaultCostDTO tripScheduleDefaultCost;

    @ApiModelProperty(value = "自定义成本属性（当模板类型为2时候，填充整个数据）")
    private TripCustomCostReq tripCustomCostReq;

    @ApiModelProperty(value = "自定义年龄段和日期类型（当模板类型为2时候，填充整个数据）")
    private TripCustomTreeReq tripCustomTree;

    @ApiModelProperty(value = "自营权限类型 （1：自营禁售 2：所有部门 3：自定义）")
    private Integer selfSalePermissionType;

    @ApiModelProperty(value = "代理商权限类型(1 代理禁售2 所有代理3 自定义）")
    private Integer agentSalePermissionType;

    @ApiModelProperty(value = "自营渠道")
    private List<OwnChannelReq> ownChannelList;

    @ApiModelProperty(value = "代理商")
    private List<AgentChannelReq> agentChannelList;

    @ApiModelProperty(value = "官方平台")
    private List<OfficialReq> officialList;

    @ApiModelProperty(value = "第三方平台")
    private List<OtherPlatformsReq> otherPlatformsList;

}
